package com.smart.call.domain;

import com.smart.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 通话记录对象 call_record
 * 
 * @author smart
 */
public class CallRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录ID */
    private Long recordId;

    /** 主叫号码 */
    private String callerNumber;

    /** 被叫号码 */
    private String calledNumber;

    /** 座席ID */
    private Long agentId;

    /** 开始时间 */
    private Date startTime;

    /** 结束时间 */
    private Date endTime;

    /** 通话时长（秒） */
    private Integer duration;

    /** 通话状态（0等待中 1进行中 2已结束 3未接通） */
    private String status;

    /** 通话类型（1呼入 2呼出） */
    private String callType;

    /** 录音文件URL */
    private String recordUrl;

    /** 备注 */
    private String remark;

    public void setRecordId(Long recordId) 
    {
        this.recordId = recordId;
    }

    public Long getRecordId() 
    {
        return recordId;
    }

    public void setCallerNumber(String callerNumber) 
    {
        this.callerNumber = callerNumber;
    }

    public String getCallerNumber() 
    {
        return callerNumber;
    }

    public void setCalledNumber(String calledNumber) 
    {
        this.calledNumber = calledNumber;
    }

    public String getCalledNumber() 
    {
        return calledNumber;
    }

    public void setAgentId(Long agentId) 
    {
        this.agentId = agentId;
    }

    public Long getAgentId() 
    {
        return agentId;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setDuration(Integer duration) 
    {
        this.duration = duration;
    }

    public Integer getDuration() 
    {
        return duration;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setCallType(String callType) 
    {
        this.callType = callType;
    }

    public String getCallType() 
    {
        return callType;
    }

    public void setRecordUrl(String recordUrl) 
    {
        this.recordUrl = recordUrl;
    }

    public String getRecordUrl() 
    {
        return recordUrl;
    }

    public void setRemark(String remark) 
    {
        this.remark = remark;
    }

    public String getRemark() 
    {
        return remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("recordId", getRecordId())
            .append("callerNumber", getCallerNumber())
            .append("calledNumber", getCalledNumber())
            .append("agentId", getAgentId())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("duration", getDuration())
            .append("status", getStatus())
            .append("callType", getCallType())
            .append("recordUrl", getRecordUrl())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}